const fs = require("fs");

// 读取文件的路径
const filePath = "../output-01.csv";

function csvToJson(filePath) {
  console.log("csv tansTo json");
  return new Promise((resolve, reject) => {
    fs.readFile(filePath, "utf-8", (err, data) => {
      if (err) {
        reject(err);
        return;
      }

      let splitArray = data.split("\n");
      splitArray[0] == "\r" && splitArray.shift()
      let splitIndex = splitArray.findIndex((item, index) => item === "\r" && index != 0);
      // console.log("splitArray",splitArray,splitIndex)

      let fisrtArray = splitArray.slice(0, splitIndex);
      let secondArray = splitArray.slice(splitIndex + 1);
      // console.log("fisrtArray",secondArray)

      let firstName = fisrtArray[0].split(",");
      let secondName = secondArray[0].split(",");
      // console.log("firstName",firstName,firstName.length)

      let resultOneArray = fisrtArray.map((element, elementIndex) => {
        //  应该返回11个结果
        if (elementIndex == 0) return; // 为第一行不返回 是参数名
    
        let elementSplit = element.split(","); // 拿到参数结果
        let tempItme = {}; // 
        firstName.forEach((items, indexs) => { // tempItme对象应该有15个变量
          // 以参数名 匹配 参数结果
          // console.log("items",items)
          tempItme[items] = elementSplit[indexs]; // 可能匹配为空 ， 因为有的参数不存在
        //   
        //   return tempItme;
        });
        // console.log("tempItme",tempItme)
        return tempItme;
      });

      let resultTwoArray = secondArray.map((element, elementIndex) => {
        if (elementIndex === 0) return;

        let elementSplit = element.split(","); // 拿到参数结果
        let tempItme = {}; // 
        secondName.forEach((items, indexs) => { // tempItme对象应该有15个变量
          // 以参数名 匹配 参数结果
          // console.log("items",items)
          tempItme[items] = elementSplit[indexs]; // 可能匹配为空 ， 因为有的参数不存在
        //   
        //   return tempItme;
        });
        // console.log("tempItme",tempItme)
        return tempItme;
      });

      resultOneArray.shift();
      resultTwoArray.shift();

      resultTwoArray.pop();
      resultTwoArray.pop();
      // console.log("resultTwoArray",resultTwoArray,resultTwoArray.length)

      resolve({
        one: [...resultOneArray],
        two: [...resultTwoArray]
      });
    });
  });
}

// 
// let result = csvToJson(filePath).then(res => {
  

//   console.log("res.one", res.one)
  
// });




module.exports = {
  csvToJson,
}